import request from '@/config/axios'
import type { Dayjs } from 'dayjs';

/** 群号池群号信息 */
export interface GroupPoolGroup {
          id: number; // 主键ID
          poolId?: number; // 群号池ID
          groupNumber?: string; // 群号
          groupName: string; // 群名
          status: number; // 状态
          source: number; // 来源
          poolName: string; // 池子名称
          remark: string; // 备注
          taskCount: number; // 使用次数
          successCount: number; // 成功次数
          failureCount: number; // 失败次数
          lastUseTime: string | Dayjs; // 使用时间
          deviceId: number; // 使用设备ID
          taskId: number; // 任务ID
          qqAccount: string; // 使用QQ
}

/** 群号池子信息 */
export interface GroupPool {
          id: number; // 主键ID
          name?: string; // 名称
          description: string; // 描述
          totalCount: number; // 群总数
          unusedCount: number; // 未使用
          usingCount: number; // 使用中
          usedCount: number; // 已使用
          notExistCount: number; // 不存在
            grouppoolgroups?: GroupPoolGroup[]
}

/** 群号池删除条件 */
export interface GroupPoolDeleteCondition {
  poolId: number; // 群号池ID，必填
  status?: number; // 状态，可选
  groupNumber?: string; // 群号，可选
}

// 群号池子 API
export const GroupPoolApi = {
  // 查询群号池子分页
  getGroupPoolPage: async (params: any) => {
    return await request.get({ url: `/yunkong/group-pool/page`, params })
  },

  // 查询群号池子详情
  getGroupPool: async (id: number) => {
    return await request.get({ url: `/yunkong/group-pool/get?id=` + id })
  },

  // 新增群号池子
  createGroupPool: async (data: GroupPool) => {
    return await request.post({ url: `/yunkong/group-pool/create`, data })
  },

  // 修改群号池子
  updateGroupPool: async (data: GroupPool) => {
    return await request.put({ url: `/yunkong/group-pool/update`, data })
  },

  // 删除群号池子
  deleteGroupPool: async (id: number) => {
    return await request.delete({ url: `/yunkong/group-pool/delete?id=` + id })
  },

  /** 批量删除群号池子 */
  deleteGroupPoolList: async (ids: number[]) => {
    return await request.delete({ url: `/yunkong/group-pool/delete-list?ids=${ids.join(',')}` })
  },

  // 导出群号池子 Excel
  exportGroupPool: async (params) => {
    return await request.download({ url: `/yunkong/group-pool/export-excel`, params })
  },

// ==================== 子表（群号池群号） ====================

  // 获得群号池群号列表
  getGroupPoolGroupListByPoolId: async (poolId) => {
    return await request.get({ url: `/yunkong/group-pool/group-pool-group/list-by-pool-id?poolId=` + poolId })
  },
  
  // 获得群号池群号分页列表
  getGroupPoolGroupPageByPoolId: async (poolId, params) => {
    return await request.get({ 
      url: `/yunkong/group-pool/group-pool-group/page-by-pool-id?poolId=${poolId}`, 
      params 
    })
  },
  
  // 根据条件删除群号池中的群号
  deleteGroupPoolByCondition: async (data: GroupPoolDeleteCondition) => {
    return await request.delete({ 
      url: `/yunkong/group-pool/group-pool-group/delete-by-condition`, 
      data
    })
  }
}